Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

254
Visualizações
Cómo resuelvo el mensaje de error: "La herencia de una interfaz con miembros '@JvmDefault' solo se permite con la opción -Xjvm-default"

Soy nuevo en el desarrollo de Android y actualmente estoy creando mi primera aplicación real. Estoy tratando de implementar una arquitectura MVVM y por eso tengo un modelo de vista para cada fragmento y cada modelo de vista tiene una fábrica de modelos de vista. Al menos, así es como entendí que tiene que ser.

Uso el código repetitivo que todos parecen usar para la fábrica:

 class ExampleViewModelFactory(private val exampleDao: ExampleDao) : ViewModelProvider.Factory { override fun <T : ViewModel> create(modelClass: Class<T>): T { if (modelClass.isAssignableFrom(exampleViewModel::class.java)) { @Suppress("UNCHECKED_CAST") return ExampleViewModel(exampleDao) as T } throw IllegalArgumentException("Unknown ViewModel class") } }

Ahora el problema es que el compilador me está dando el siguiente error:

e: C:\Users\ ...\ExampleViewModel.kt: (64, 7): la herencia de una interfaz con miembros '@JvmDefault' solo se permite con la opción -Xjvm-default

Y este error lo produce la clase viewModelFactory que he implementado en el viewModel. Realmente no puedo decir qué significa esto y no puedo encontrar nada útil o incluso relacionado con mi problema específico. Básicamente seguí algunos tutoriales básicos sobre cómo crear tu primera aplicación, pero sigo encontrándome con errores como este. En la mayoría de los casos, pude solucionar el problema por mí mismo, pero esta vez es diferente.

Sé que muchos de ustedes tienen mucha experiencia y conocimiento, así que espero que algunos de ustedes encuentren el tiempo para ayudarme y darme una pista de lo que puedo hacer para solucionar esto.

over 4 years ago · Santiago Trujillo
4 Respostas
Responde à pergunta

0

Intente poner estas líneas dentro del bloque android{} en el archivo build.gradle del módulo

 kotlinOptions{ freeCompilerArgs += [ "-Xjvm-default=all", ] }

Si el código anterior no funciona, intente agregar estas líneas a continuación dentro del bloque de dependencias {}

 tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach{ kotlinOptions{ freeCompilerArgs +=["-Xjvm-default=all",] } }
over 4 years ago · Santiago Trujillo Relatório

0

Versión de Kotlin (kts) de la respuesta de @ianhanniballake

 tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class).configureEach { kotlinOptions { freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=all" } }
over 4 years ago · Santiago Trujillo Relatório

0

Parece que depende directa o indirectamente (a través de alguna otra biblioteca) de Lifecycle 2.5.0-alpha01 .

Según este problema :

Debe agregar temporalmente lo siguiente a su build.gradle :

 tasks.withType(KotlinCompile).configureEach { kotlinOptions { freeCompilerArgs += [ "-Xjvm-default=all", ] } }

Tenga en cuenta que, en determinadas circunstancias, es posible que desee utilizar all-compatibility en lugar de la compatibilidad all ; obtenga más información al respecto en la publicación de blog de Jebrain .

A partir de kotlin 1.6.20, no necesitará tocar build.gradle para obtener más información, consulte KT-47000

over 4 years ago · Santiago Trujillo Relatório

0

Usa la versión estable, en este caso la 2.4.1. Tengo el mismo problema y lo resolví haciendo este cambio.

https://developer.android.com/jetpack/androidx/releases/lifecycle

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda